package com.zhu.wx.service;

import com.zhu.wx.entity.ResMsg;
import com.zhu.wx.strategy.WxResStrategy;
import com.zhu.wx.util.WxParseUtil;
import com.zhu.wx.util.XmlUtil;
import org.springframework.stereotype.Service;

import java.util.Map;

/**
 * 音乐消息服务类
 * <xml>
 *   <ToUserName><![CDATA[toUser]]></ToUserName>
 *   <FromUserName><![CDATA[fromUser]]></FromUserName>
 *   <CreateTime>12345678</CreateTime>
 *   <MsgType><![CDATA[music]]></MsgType>
 *   <Music>
 *     <Title><![CDATA[TITLE]]></Title>
 *     <Description><![CDATA[DESCRIPTION]]></Description>
 *     <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>
 *     <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>
 *     <ThumbMediaId><![CDATA[media_id]]></ThumbMediaId>
 *   </Music>
 * </xml>
 *
 * 参数	是否必须	说明
 * ToUserName	是	接收方帐号（收到的OpenID）
 * FromUserName	是	开发者微信号
 * CreateTime	是	消息创建时间 （整型）
 * MsgType	是	消息类型，音乐为music
 * Title	否	音乐标题
 * Description	否	音乐描述
 * MusicURL	否	音乐链接
 * HQMusicUrl	否	高质量音乐链接，WIFI环境优先使用该链接播放音乐
 * ThumbMediaId	是	缩略图的媒体id，通过素材管理中的接口上传多媒体文件，得到的id
 */
@Service
public class WxResMusicService implements WxResStrategy {

    @Override
    public String execute(ResMsg resMsg) {
        try {
            Map<String, String> resMap = WxParseUtil.musicResMap(resMsg);
            return XmlUtil.mapToXml(resMap);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}
